#include <stdio.h>
#include "cabecera.h"

/*
struct contenedor* nuevoElemento();
int cuentaContenedores(struct contenedor** cabeza);
void apilar(struct contenedor** cabeza, int codigo);
int desapilar(struct contenedor** cabeza);
int verCima(struct contenedor* cabeza);
int buscarContenedor(struct contenedor** cabeza, int codigo);
void muestraContenedores(struct contenedor** cabeza);
int estaVacia(struct contenedor* cabeza);
void sacaContenedor(struct contenedor** cabeza, int codigo);
*/

int main(){
	system("clear");
	int limite, opcion, codigo, salir = 0;
	struct contenedor* cabeza = NULL;
	printf("Bienvenido al programa de los containers.\n");
	printf("Para empezar, diga el limite de contenedores: ");
	scanf("%d", &limite);


	while(salir == 0){
		getchar();
		system("clear");
		printf("____________MENU___________ (Limite de contenedores: %d)\n", limite);
		printf("1.- Apilar un contenedor.\n");
		printf("2.- Conocer cuantos contenedores hay apilados.\n");
		printf("3.- Conocer si hay un contenedor en la pila.\n");
		printf("4.- Sacar un contenedor de la pila.\n");
		printf("5.- Mostrar los contenedores de la pila.\n");		
		printf("6.- Salir de este maravilloso programa.\n");
		printf("¿Que desea hacer? ");
		scanf("%d", &opcion);
		getchar();
		switch(opcion){
			case 1:
				if(cuentaContenedores(&cabeza) == limite){
					printf("Usted ha alcanzado el limite de contenedores :(. Pulse ENTER para continuar.\n");
					getchar();
				}
				else{
					printf("Introduzca el codigo del contenedor a introducir:\n");
					scanf("%d", &codigo);
					apilar(&cabeza, codigo);
					printf("Contenedor apilado :). Pulse ENTER para continuar.\n");
					getchar();
				}
			break;

			case 2:
				printf("En la pila hay %d contenedores. Pulse ENTER para continuar.\n", cuentaContenedores(&cabeza));
				getchar();
			break;

			case 3:
				printf("¿Que contenedor desea buscar en la pila? ");
				scanf("%d", &codigo);
				getchar();

				if(buscarContenedor(&cabeza, codigo)){
					printf("El contenedor con codigo %d esta en la pila. :)) Pulse ENTER para continuar.\n", codigo);
					getchar();
				}
				else{
					printf("El contenedor con codigo %d no esta en la pila. :'( Pulse ENTER para continuar.\n", codigo);
					getchar();
				}
			break;

			case 4:
				printf("¿Que contenedor desea sacar de la pila? ");
				scanf("%d", &codigo);
				getchar();
				sacaContenedor(&cabeza, codigo);
				printf("Contenedor con codigo %d sacado de la pila. Pulse ENTER para continuar.\n", codigo);
				getchar();
			break;

			case 5:
				muestraContenedores(&cabeza);
				printf("Pulse ENTER para continuar.");
				getchar();
			break;

			case 6:
				salir = 1;
			break;
		}
	}

	return 0;
}